package com.blrs.domain;

import java.util.Date;
import java.util.List;

import com.blrs.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.blrs.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 问卷调查对象 questionnaire_investigation
 *
 * @author yang
 * @date 2023-11-27
 */
public class QuestionnaireInvestigation extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 问卷调查id
     */
    private String questionnaireId;

    /**
     * 问卷名称
     */
    @Excel(name = "问卷名称")
    private String questionnaireName;

    /**
     * 发起单位
     */
    @Excel(name = "发起单位")
    private String initiateUnits;

    /**
     * 发起时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发起时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date initiateTime;

    /**
     * 有效期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validityTime;

    /**
     * 接收方id
     */
    @Excel(name = "接收方id")
    private String receiverId;

    /**
     * 接收方姓名
     */
    @Excel(name = "接收方姓名")
    private String receiverName;

    /**
     * 操作时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date operateTime;

    /**
     * 操作人id
     */
    @Excel(name = "操作人id")
    private Long operateId;

    /**
     * 操作人姓名
     */
    @Excel(name = "操作人姓名")
    private String operateName;

    /**
     * 部门id
     */
    @Excel(name = "部门id")
    private Long departmentId;

    /**
     * 部门名称
     */
    @Excel(name = "部门名称")
    private String departmentName;

    /**
     * 组织机构id
     */
    @Excel(name = "组织机构id")
    private Long organizationId;

    /**
     * 组织机构名称
     */
    @Excel(name = "组织机构名称")
    private String organizationName;

    /**
     * 创建人id
     */
    @Excel(name = "创建人id")
    private Long creationId;

    /**
     * 创建人姓名
     */
    @Excel(name = "创建人姓名")
    private String creationName;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date creationTime;

    /**
     * 归属于
     */
    @Excel(name = "归属于")
    private Long belongTo;

    /**
     * 主分类
     */
    @Excel(name = "主分类")
    private String classificationId;

    /**
     * 问卷类型
     */
    @Excel(name = "问卷类型")
    private String questionnaireType;

    /**
     * 联系人
     */
    @Excel(name = "联系人")
    private String contacts;

    /**
     * 联系电话
     */
    @Excel(name = "联系电话")
    private String telephone;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 审核人id
     */
    @Excel(name = "审核人id")
    private Long examineId;

    /**
     * 审核人姓名
     */
    @Excel(name = "审核人姓名")
    private String examineName;

    /**
     * 附件
     */
    @Excel(name = "附件")
    private String fileUpload;

    private String thirdPartyUrl;

    public String getThirdPartyUrl() {
        return thirdPartyUrl;
    }

    public void setThirdPartyUrl(String thirdPartyUrl) {
        this.thirdPartyUrl = thirdPartyUrl;
    }

    /**
     * 发送数量
     *
     * @param questionnaireId
     */
    private Integer sendNum;
    /**
     * 发起开始时间
     *
     * @return
     */
    private Date initStartTime;
    /**
     * 附件路径
     */
    private String fileUrl;
    /**
     * 发送类别
     *
     * @return
     */
    private String sendType;
    /**
     * 接收方id数组
     *
     * @return
     */
    private List<String> enterpriseId;

    private Date initEndTime;


    /**
     * 状态
     *
     * @return
     */
    private String status;

    /*
    是否作答
     */
    private int isAnswer;
    /**
     * 作答人
     */
    private String answerUser;

    /**
     * 回传数量
     *
     * @return
     */
    private Integer returnNum;
    /**
     * 配图
     */
    private String questionnairePicture;
    private String resultAddress;


    /**
     * 审核状态
     * @return
     */
    private String  examineStatus;

    /**
     * 终止原因
     * @return
     */
    private String endReason;

    public String getExamineStatus() {
        return examineStatus;
    }

    public void setExamineStatus(String examineStatus) {
        this.examineStatus = examineStatus;
    }

    public String getEndReason() {
        return endReason;
    }

    public void setEndReason(String endReason) {
        this.endReason = endReason;
    }

    public String getResultAddress() {
        return resultAddress;
    }

    public void setResultAddress(String resultAddress) {
        this.resultAddress = resultAddress;
    }

    public String getQuestionnairePicture() {
        return questionnairePicture;
    }

    public void setQuestionnairePicture(String questionnairePicture) {
        this.questionnairePicture = questionnairePicture;
    }

    public Integer getReturnNum() {
        return returnNum;
    }

    public void setReturnNum(Integer returnNum) {
        this.returnNum = returnNum;
    }

    public int getIsAnswer() {
        return isAnswer;
    }

    public void setIsAnswer(int isAnswer) {
        this.isAnswer = isAnswer;
    }

    public String getAnswerUser() {
        return answerUser;
    }

    public void setAnswerUser(String answerUser) {
        this.answerUser = answerUser;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public List<String> getEnterpriseId() {
        return enterpriseId;
    }

    public void setEnterpriseId(List<String> enterpriseId) {
        this.enterpriseId = enterpriseId;
    }

    public String getSendType() {
        return sendType;
    }

    public void setSendType(String sendType) {
        this.sendType = sendType;
    }

    public String getFileUrl() {
        return fileUrl;
    }

    public void setFileUrl(String fileUrl) {
        this.fileUrl = fileUrl;
    }


    public Date getInitStartTime() {
        return initStartTime;
    }

    public void setInitStartTime(Date initStartTime) {
        this.initStartTime = initStartTime;
    }

    public Date getInitEndTime() {
        return initEndTime;
    }

    public void setInitEndTime(Date initEndTime) {
        this.initEndTime = initEndTime;
    }

    public Integer getSendNum() {
        return sendNum;
    }

    public void setSendNum(Integer sendNum) {
        this.sendNum = sendNum;
    }

    public void setQuestionnaireId(String questionnaireId) {
        this.questionnaireId = questionnaireId;
    }

    public String getQuestionnaireId() {
        return questionnaireId;
    }

    public void setQuestionnaireName(String questionnaireName) {
        this.questionnaireName = questionnaireName;
    }

    public String getQuestionnaireName() {
        return questionnaireName;
    }

    public void setInitiateUnits(String initiateUnits) {
        this.initiateUnits = initiateUnits;
    }

    public String getInitiateUnits() {
        return initiateUnits;
    }

    public void setInitiateTime(Date initiateTime) {
        this.initiateTime = initiateTime;
    }

    public Date getInitiateTime() {
        return initiateTime;
    }

    public void setValidityTime(Date validityTime) {
        this.validityTime = validityTime;
    }

    public Date getValidityTime() {
        return validityTime;
    }

    public void setReceiverId(String receiverId) {
        this.receiverId = receiverId;
    }

    public String getReceiverId() {
        return receiverId;
    }

    public void setReceiverName(String receiverName) {
        this.receiverName = receiverName;
    }

    public String getReceiverName() {
        return receiverName;
    }

    public void setOperateTime(Date operateTime) {
        this.operateTime = operateTime;
    }

    public Date getOperateTime() {
        return operateTime;
    }

    public void setOperateId(Long operateId) {
        this.operateId = operateId;
    }

    public Long getOperateId() {
        return operateId;
    }

    public void setOperateName(String operateName) {
        this.operateName = operateName;
    }

    public String getOperateName() {
        return operateName;
    }

    public void setDepartmentId(Long departmentId) {
        this.departmentId = departmentId;
    }

    public Long getDepartmentId() {
        return departmentId;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setOrganizationId(Long organizationId) {
        this.organizationId = organizationId;
    }

    public Long getOrganizationId() {
        return organizationId;
    }

    public void setOrganizationName(String organizationName) {
        this.organizationName = organizationName;
    }

    public String getOrganizationName() {
        return organizationName;
    }

    public void setCreationId(Long creationId) {
        this.creationId = creationId;
    }

    public Long getCreationId() {
        return creationId;
    }

    public void setCreationName(String creationName) {
        this.creationName = creationName;
    }

    public String getCreationName() {
        return creationName;
    }

    public void setCreationTime(Date creationTime) {
        this.creationTime = creationTime;
    }

    public Date getCreationTime() {
        return creationTime;
    }

    public void setBelongTo(Long belongTo) {
        this.belongTo = belongTo;
    }

    public Long getBelongTo() {
        return belongTo;
    }

    public void setClassificationId(String classificationId) {
        this.classificationId = classificationId;
    }

    public String getClassificationId() {
        return classificationId;
    }

    public void setQuestionnaireType(String questionnaireType) {
        this.questionnaireType = questionnaireType;
    }

    public String getQuestionnaireType() {
        return questionnaireType;
    }

    public void setContacts(String contacts) {
        this.contacts = contacts;
    }

    public String getContacts() {
        return contacts;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public String getTelephone() {
        return telephone;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setExamineId(Long examineId) {
        this.examineId = examineId;
    }

    public Long getExamineId() {
        return examineId;
    }

    public void setExamineName(String examineName) {
        this.examineName = examineName;
    }

    public String getExamineName() {
        return examineName;
    }

    public void setFileUpload(String fileUpload) {
        this.fileUpload = fileUpload;
    }

    public String getFileUpload() {
        return fileUpload;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("questionnaireId", getQuestionnaireId())
                .append("questionnaireName", getQuestionnaireName())
                .append("initiateUnits", getInitiateUnits())
                .append("initiateTime", getInitiateTime())
                .append("validityTime", getValidityTime())
                .append("receiverId", getReceiverId())
                .append("receiverName", getReceiverName())
                .append("operateTime", getOperateTime())
                .append("operateId", getOperateId())
                .append("operateName", getOperateName())
                .append("departmentId", getDepartmentId())
                .append("departmentName", getDepartmentName())
                .append("organizationId", getOrganizationId())
                .append("organizationName", getOrganizationName())
                .append("creationId", getCreationId())
                .append("creationName", getCreationName())
                .append("creationTime", getCreationTime())
                .append("belongTo", getBelongTo())
                .append("classificationId", getClassificationId())
                .append("questionnaireType", getQuestionnaireType())
                .append("contacts", getContacts())
                .append("telephone", getTelephone())
                .append("startTime", getStartTime())
                .append("endTime", getEndTime())
                .append("examineId", getExamineId())
                .append("examineName", getExamineName())
                .append("fileUpload", getFileUpload())
                .toString();
    }
}
